Fixed Queue
A strict queue with the given capacity. The differences from java.util.ArrayDeque are:
The underlying array is not resizeable.
Removal of arbitrary elements is not supported. Elements must be consumed one by one.
Reduced operation overhead for frequent insertions and removals.
Samples
import dev.kikugie.commons.collections.FixedQueue
import dev.kikugie.commons.collections.present
import kotlin.test.assertEquals
import kotlin.test.assertFailsWith
fun main() {
//sampleStart
val queue = FixedQueue<Int>(4)
queue += listOf(1, 2, 3, 4)
assertFailsWith<IndexOutOfBoundsException> { queue += 5 }
assertFailsWith<UnsupportedOperationException> { queue -= 3 }
assertEquals(1, queue.remove())
//sampleEnd
}